# 8608 - An 8-bit data, 16-bit address, CISC architecture.

For a list of instructions, see [instructionList.txt](instructionList.txt).

## How to use the assembler:
1. Install `bllua3` from [https://notabug.org/redo/bllua3](https://notabug.org/redo/bllua3)
2. Download this repo into `Add-Ons/8608` or anywhere within one of Blockland's main directories.
3. In BL console, execute:
    ```
    luaexec("Add-Ons/8608/assembler-8608.lua");
    ```
4. To assemble a program, place a 1x1f ghost brick on the top-left corner of the ROM, face forward, and in BL console do:
    ```
    AssembleBuildFile("Add-Ons/8608/examples/program.asm", "RomX RomY RomZ");
    ```
    where `RomX` is the width of the ROM, `RomY` is the depth front to back, and `RomZ` is the height in bits, i.e., "16 16 8".

    You can also run the assembler from the command line to get a memory dump and disassembly in stdout, if you have lua installed:
    ```
    luajit "Add-Ons/8608/assembler-8608.lua" "Add-Ons/8608/examples/program.asm"
    ```

## How to use the emulator:
1. Install love2d from [https://love2d.org](https://love2d.org)
2. Open a command prompt in the "emulator" folder and run:
    ```
    love . C:/path/filename.asm
    ```

## Memory Map
[memory map](memoryMap.md)
